<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>事件姓名案例</title>
    <style>
        #root {
            width: 200px;
            height: 100px;
            background-color: pink;
            margin: 0 auto;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
        }
    </style>
    <script src="../../js/vue.js"></script>
</head>
<body>
<div id="root">
    <label>
        姓<input type="text" v-model="firstName">
    </label>
    <label>
        名<input type="text" v-model="lastName">
    </label>
    <div>你的全名是:<span>{{fullName}}</span></div>
</div>
<script>
    const vm = new Vue({
        el: '#root',
        data: {
            firstName: '张',
            lastName: '三',
        },
        //计算属性是指通过属性之间计算得到的新的属性
        computed: {
            fullName: {
                //get:当有人读取fullName时,get就会被调用,且返回值作为fullName的值
                //get调:1.初次读取fullName时 2.所依赖的数据发生变化时
                //计算属性有缓存,如果被初次读取之后,所依赖的数据没有发生改变,他就直接用缓存数据,不调用get方法
                get() {
                    console.log('get被调用')
                    return this.firstName + '-' + this.lastName
                },
                //当fullName被修改的时候
                set(value) {
                    //将传入的 x-y拆成姓和名
                    const arr = value.split('-')
                    this.firstName = arr[0]
                    this.lastName = arr[1]

                }
            },
            //简写模式1,只读不改的情况下
            // fullName2:{}
            //简写模式2,只读不改的情况下
            //fullName3(){}
        }
    })
</script>
</body>
</html>